home *** CD-ROM | disk | FTP | other *** search
- ***************************************************************************
- * *
- * PPrefs 1.1 Screen Promotion Utility *
- * Freely distributable *
- * Copyright © 1993 The Naughty Bits *
- * *
- * Olaf Gschweng *
- * Riefstahlstr. 33 *
- * 17235 Neustrelitz *
- * Germany *
- * *
- * EMail: gschweng@informatik.uni-rostock.de *
- * *
- ***************************************************************************
-
-
- DISTRIBUTION CONDITIONS
-
-
- The programs and files in this distribution may be freely distributed as
- long as no charge is made other than to cover time and copying costs. The
- files in this distribution must be kept together in original, unchanged
- form. If you want to include PPrefs as part of a commercial package you
- have to contact the author first.
-
-
- INTRODUCTION
-
-
- PPrefs is a screenmode promotion utiltity which allows you to promote every
- available screenmode of your system (including those that normally don't
- appear in screenmode requesters, e.g. HAM or EHB modes) with another mode.
- Besides it can keep exceptions of that normal promotions when you want that
- some very special programs get their very special screen or don't get
- promoted at all.
-
- Screen promotion could be useful for you if you only have a VGA monitor
- that cannot diplay those PAL and NTSC resolutions, or if you don't like
- that resyncing of your Multisync monitor (like on my NEC 3D, which stays
- black for 1 second) every time you change between screens with different
- modes, or if your monitor doesn't handle different positions and sizes for
- every mode and you have to manually adjust your monitor all the time or
- live with that screen that exceeds your overscan area a bit too much .. ,
- or ..
-
- I wrote PPrefs because all the other promotion utilties I tried and used
- did not have the flexibility I needed. After trying several of them I used
- ForceMonitor but I was not fully satisfied with it. After I bought my
- Picasso II gfx card, I needed a good promotion utility even more because I
- don't like that ChangeScreen utility included with the Picasso so much.
-
-
- REQUIREMENTS
-
-
- PPrefs requires Kickstart 2.0, but should be more useful with Kick 3.0 or
- the WB 2.1 :)
- You should have asl.library, iffparse.library, mathieeedoubbas.library and
- mathieeedoubtrans.library in your LIBS: directory.
-
-
- INSTALLATION
-
-
- PPrefs consists of two programs. The program PPrefs itself is a CLI program
- that patches the intuition.library/OpenScreen() and OpenScreenTagList()
- functions. You should put it in your C: directory or anywhere else on your
- Workbench disk, or just put it on top of another thing - you know there are
- too many things not lying on top of another .. (sorry, watched Pythons too
- much)
-
- The other program is the preferences editor of PPrefs which should be
- placed in the Prefs drawer of your WB disk. This GUI is localized, so if
- you have 2.1 or above you can also install the catalog to get the editor in
- your language. To activate PPrefs you must run PPrefs from a shell. As it
- doesn't detach itself you should use the 'Run' command. To install it
- permanently, add the following line to the startup-sequence or (preferably)
- your user-startup:
-
- Run <NIL: >NIL: PPrefs
-
- To remove it, send it a CTRL_C. But don't do this if another program
- patched the OpenScreen or OpenScreenTagList function AFTER PPrefs did - you
- must remove the other program first.
-
-
- THE PREFERENCES EDITOR
-
-
- Overview
-
- The 2 listview gadgets on the top left side are for the source and
- destination mode selection, the other pair below them shows various
- informations on the selected modes. The other listview on the right side is
- for the exceptions.
-
- Because of the many things to diplay in the window and the resulting small
- listviews I decided to build sublists for each monitor - ever tried
- clicking on the slider of the mode selector of DPaint 4.5 ? To enter a
- sublist just click on the monitor name, to leave it click on the top item
- of the sublist.
-
- Note: If you have the OS3.0 standard mode promotion enabled (yes, the
- little gadget in IControl that is not mentioned in the docs - remember how
- lucky you where as you, just fooling around with your brandnew A4000's
- Workbench, found it, and you felt that you looked for something like that
- the whole time ...), then the promoted (i.e. scandoubled modes) appear in
- the Default: monitor's list. I have it disabled and simply do not need it
- anymore.
-
- How to promote
-
- If you want to promote a mode, just single click on it on the source side
- so that its properties appear in the listview below. Then select the
- desired destination mode on the destination side (again a single click is
- enough) - that's all.
-
- If you click on a source mode that is already promoted, its destination
- mode will automatically appear on the right side; if it has not been
- promoted yet, the right side will show no selection.
-
- Note: The Kickstart 3.0 (i.e. GadTools V39) listviews highlight the
- selected entry rather than showing its name on the bottom of the gadget as
- they do under 2.0 - so they give you a much better view on what's going on.
-
- How to unpromote
-
- To remove a promotion you have to click on the 'Unpromote' gadget above the
- mode listviews. Alternatively you can select the 'Unpromote' menuitem in
- the 'Edit' menu. There is also an item to remove all promotions and one to
- remove all promotions of a monitor.
-
- The exceptions
-
- If you want to exclude a particular program from the promotion or if you
- want its screen(s) to be promoted differently than the normal promotion -
- that's where the exceptions come into action.
-
- You can specify this screens by its name or by the name of the program that
- opens the screen. You can choose the appropriate list by clicking on the
- cycle gadget below the listview. To add an entry click on the 'Add' gadget
- and then enter the desired name. (The new entry will be inserted above a
- previously selected entry or on the bottom if no entry was selected
- before.) The program will now get exactly the mode it wanted whether there
- is a promotion for that mode or not. The names can contain wildcards and
- are case insensitive.
-
- If you want to give a program a particular screen mode just select its
- entry in one of the exception lists and then select the desired mode in the
- destination listview.
-
- Options
-
- Under pre-AA chipsets the number of colors a mode is able to display,
- varies. So if you want to promote a mode to another one that only can
- display less colors than the original mode, it can happen that a program
- cannot get the number of colors it wants to get. For this case you can
- specify (separately for each promotion and exception) what should be done
- here by choosing between keeping the resolution or keeping the colors. The
- default is to keep the resolution, so the program gets the mode you wanted
- it to get, but only as many colors as available. This may have the effect
- that you can't see everything you should - perhaps you should then better
- use the other option: to keep the colors and to reduce the resolution of
- that screen. In this case PPrefs will activate autoscroll (if needed) so
- you can shift the visible area to let you see all of the screen.
-
- Best mode
-
- Under Kick 3.0 (or above:) you will find a "Best xxxx mode" entry in the
- monitor list and in every mode list (on the destination side). This lets
- PPrefs use the new BestModeID() function to determine a suitable display
- mode. If you select the global entry then the mode is searched in the whole
- display database - it will take a noticable amount of time before the
- screen is opened. If you selected the entry in one of the mode lists the
- returned display mode will use the monitor of the selected entry.
-
- ###########################################################################
- WARNING: It seems that the BestModeID() function is hungry for stack, so be
- sure that the program you promote has enough stack!
- ###########################################################################
-
- There are 4 checkboxes to give you the possibility to influence the
- selection of the best mode:
-
- Source mode - this lets PPrefs pass the source mode ID to BestModeID() so
- that it can take care about a proper aspect ratio and some special
- properties like HAM etc.
-
- Dimensions - this passes the width and height of the requested screen to
- BestModeID() to let it take care about the desired size of the screen.
-
- Aspect ratio - this overrides the aspect ratio of the source mode and uses
- the width and height of the screen to determine the desired ratio.
-
- No lace - this one lets PPrefs try to find a mode without interlace.
-
- Configuration
-
- If you quit the editor via the 'Use' gadget the configuration will be saved
- to ENV:promotion.prefs. You can edit your prefs even if PPrefs is not
- currently running. If you 'Save' the prefs, they will also be written to
- ENVARC: so they'll survive the next reset. If PPrefs is currently running
- it will immediately use the new configuration.
-
-
- THE PPREFS PROGRAM
-
-
- The PPrefs program patches the OpenScreen and OpenScreenTagList functions
- of intuition.library, so that OpenScreen is completely replaced by
- OpenScreenTagList.
-
- It looks for a promotion entry in the screenlist, the tasklist and the
- normal promotion array (in that order). If it finds one, it searches for an
- appropriate overscan region, checks if it fits entirely on the screen, and
- if not, enables AutoScroll. It then will center the screen or at least look
- if the left/top coordinates don't exceed the overscan region.
-
- PPrefs has now some commandline options:
-
- NEWLOOK - enable newlook for promoted screens
- NOCENTER - don't try to center the screen.
- STDOSCAN - set overscan only up to standard (graphics) overscan which is
- editable via Preferences - default is maximum overscan which is not
- editable but fixed
-
-
- IF YOU HAVE PROBLEMS WITH PPREFS
-
-
- I cannot have all the programs you may have and so cannot test PPrefs with
- every program available for the Amiga. Of course I tested it with the
- programs I use and some problems that I could not imagine appeared with
- some of them and I changed PPrefs to work with those programs. So if your
- favourite program does not work well with PPrefs - I cannot do anything to
- fix this if I don't know about it - you have to tell me!
-
- I have included a special version of PPrefs called PPrefsDBug that prints a
- few informations when a screen is opened. To use it, you should abort the
- normal PPrefs program and start PPrefsDBug in a shell. When you have a
- program that makes problems with PPrefs you should send me the output that
- PPrefsDBug makes. You could also use it to determine the mode ID or the
- screen/task name of some screens.
-
- If you use the best mode promotion, be sure that the patched program has
- enough stack - I really had some serious trouble before I realized that
- insufficient stack was the cause for all those mysterious crashes I had.
-
-
- FUTURE PLANS
-
-
- -self detaching PPrefs & stack swapping for BestID
- -maybe optionally center and setnewlook even for unpromoted screens
- -better error handling
-
-
- THANKS TO
-
-
- -Matt Dillon and Stefan Becker for making and distributing DICE
- -Sylvain Rougier and Pierre Carette for BrowserII - a fantastic program
- -Torsten "Tigy" Gebert for his oiginal 'all to VGA' patch that showed me
- that there's nothing magic about such a patch; and for testing PPrefs
- -Christoph Feck for his PrefsIcons (PPrefs' icon is in the same style)
- -Sylvain Rougier for the french translation
-
-
- HISTORY
-
-
- 1.0 (06.09.93)
- -Initial release.
- 1.0a (13.09.93) (not released)
- -added screen centering
- -does not use any global data for the taglist extension anymore
- 1.1 (26.10.93)
- -redesigned GUI and font-sensitive code, much nicer now :-O
- -added "Best mode" promotion
- -exceptions now work for CLI started programs
- -added semaphore protection
- -screen centering, left/top adjust, overscan handling reworked
-
- _________________ -------------------------------------- _________________
- _\___\_o_/___/_ | | _\___\_|_/___/_
- _\___(*)___/_ | Olaf "Oil Hog" Gschweng | _\___(|)___/_
- / \ | gschweng@informatik.uni-rostock.de | / \
- |---| | | |---|
- --------------------------------------
-